#pragma once
#include "OptimizationStrategy.h"
class DoubleBufferingStrategy : public OptimizationStrategy {
public:
    // The method to execute the strategy
    bool execute(OptimizationContext & contents) override {
        // 实现双缓冲策略
        return true;    // 返回执行结果
    }

    // Reset the strategy
    void reset() override {
        // 重置双缓冲策略
    }
//    //prepareData()：这个接口用于预处理数据，将AVFrame转换为RGB或其他需要的格式，并存储在map中。
//    bool prepareData(TnputType& input) {
//        // 实现双缓冲策略
//    }

//    //swapBuffers()：这个接口用于交换两个缓冲区的角色。当一个缓冲区的数据已经准备好时，可以通过这个接口将其设置为当前的显示缓冲区。
//    bool swapBuffers() {
//        // 实现双缓冲策略
//    }

//    //getCurrentBuffer()：这个接口用于获取当前的显示缓冲区。这个缓冲区包含的数据应该是已经准备好的，可以直接用于显示。
//    OutputType getCurrentBuffer() {
//        // 实现双缓冲策略
//    }

//    //getBackupBuffer()：这个接口用于获取备份的缓冲区。这个缓冲区包含的数据是正在准备的，不能用于直接显示。
//    OutputType getBackupBuffer() {
//        // 实现双缓冲策略
//    }
};
